package com.example.hello.util;


import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.profile.DefaultProfile;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class AliSmsOperator {

//    @Autowired
//    private AliyunProperties aliSmsProperties;



    /**
     * 发送短信验证码
     * @param phone 手机号
     * @param code  验证码（将用于模板中的变量替换）
     * @return SendSmsResponse 返回结果，开发者可以根据返回值判断发送是否成功
     * @throws Exception 抛出异常
     */
    public SendSmsResponse sendSms(String phone, String code) throws Exception {

        // 产品名称: 云通信短信 API 产品, 开发者无需替换
        String product = "Dysmsapi";
        // 产品域名, 开发者无需替换
        String domain = "dysmsapi.aliyuncs.com";

        // 替换成你自己的阿里云 AccessKeyId 和 AccessKeySecret
        String accessKeyId = "LTAI5tPZaBw7KrEWrLtPVJC8";
        String accessKeySecret = "Xl7Gz4skrWoJwOgAOWALalh9l7PsKU";

        // 短信签名和模板Code（请在阿里云短信管理控制台申请）
        String signName = "图书借阅与推荐系统"; // 例如："阿里云短信"
        String templateCode = "SMS_480915175"; // 例如："SMS_12345678"



        // 初始化阿里云客户端配置
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        IAcsClient client = new DefaultAcsClient(profile);

        // 构造请求对象
        SendSmsRequest request = new SendSmsRequest();
        // 必填: 手机号码
        request.setPhoneNumbers(phone);
        // 必填: 短信签名
        request.setSignName(signName);
        // 必填: 短信模板Code
        request.setTemplateCode(templateCode);
        // 必填: 短信模板变量替换 JSON 串, 如模板内容为 "您的验证码是：${code}"，则此处填写 {"code":"123456"}
        request.setTemplateParam("{\"code\":\"" + code + "\"}");

        // 可选: outId, 可用于追踪短信发送业务流程
        // request.setOutId("yourOutId");

        // 发起请求并获取响应
        SendSmsResponse response = client.getAcsResponse(request);
        return response;
    }
}